home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / scope / 026-050 / scopedisk45 / dlabel / dlabel.c < prev    next >
C/C++ Source or Header  |  1995-03-18  |  7KB  |  343 lines

  1. /***************************************************************************
  2.  *
  3.  *                  DLabel.c v2.0 last edited 14-Apr-87
  4.  *
  5.  *                            by KL Colclasure
  6.  *
  7.  ***************************************************************************/
  8.  
  9. #include <stdio.h>
  10. #include <functions.h>
  11.  
  12. #include <intuition/intuition.h>
  13.  
  14. /*---- Defines ------------------------------------------------------------*/
  15.  
  16. #define VOLGAD_ID      1
  17. #define TX1GAD_ID      2
  18. #define TX2GAD_ID      3
  19. #define TX3GAD_ID      4
  20. #define TX4GAD_ID      5
  21. #define ITXGAD_ID      6
  22. #define CLRGAD_ID      7
  23. #define PRTGAD_ID      8
  24.  
  25. /*---- Data for label -----------------------------------------------------*/
  26.  
  27. char vlin1[] =
  28. {
  29.    0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,
  30.    0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,NULL
  31. };
  32.  
  33. char vlin2[] =
  34. {
  35.    0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,
  36.    0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,NULL
  37. };
  38.  
  39. /*---- Library names & pointers for openLibs() ----------------------------*/
  40.  
  41. int openLibs();
  42. void closeLibs();
  43.  
  44. char *libs[] =
  45. {
  46.    "intuition.library",
  47.    "graphics.library",
  48.    NULL
  49. };
  50.  
  51. struct IntuitionBase *IntuitionBase = NULL;
  52. struct GfxBase *GfxBase = NULL;
  53. unsigned long endBases = NULL;
  54.  
  55. /*---- Gadget stuff -------------------------------------------------------*/
  56.  
  57. char volBuf[23] = "DLabel2:";          /* String buffers.                  */
  58. char tx1Buf[26] = "Disk Label Printer";
  59. char tx2Buf[26] = "Version 2.0";
  60. char tx3Buf[26] = "";
  61. char tx4Buf[26] = "by KL Colclasure";
  62. char itxBuf[26] = "AmigaDOS    MEMOREX DS/4D";
  63.  
  64. short xyPairs4[] = {0,0,57,0,57,12,0,12,0,0};
  65.  
  66. struct Border boolBdr =
  67. {
  68.    -1,-1,1,0,JAM1,
  69.    5,&xyPairs4,NULL
  70. };
  71.  
  72. struct IntuiText prtText =
  73. {
  74.    1,0,JAM1,9,2,NULL,
  75.    "Print",NULL
  76. };
  77.  
  78. struct Gadget prtGad =
  79. {
  80.    NULL,240,70,56,11,
  81.    GADGHCOMP,
  82.    RELVERIFY,
  83.    BOOLGADGET,
  84.    &boolBdr,NULL,&prtText,0,
  85.    NULL,PRTGAD_ID,NULL
  86. };
  87.  
  88. struct IntuiText clrText =
  89. {
  90.    1,0,JAM1,9,2,NULL,
  91.    "Clear",NULL
  92. };
  93.  
  94. struct Gadget clrGad =
  95. {
  96.    &prtGad,240,54,56,11,
  97.    GADGHCOMP,
  98.    RELVERIFY,
  99.    BOOLGADGET,
  100.    &boolBdr,NULL,&clrText,0,
  101.    NULL,CLRGAD_ID,NULL
  102. };
  103.  
  104. struct StringInfo itxStrInfo =         /* Info line string gadget.         */
  105. {
  106.    &itxBuf,NULL,0,26,0,
  107.    0,0,0,0,0,NULL,0,NULL
  108. };
  109.  
  110. struct Gadget itxGad =
  111. {
  112.    &clrGad,20,72,208,8,
  113.    GADGHCOMP,
  114.    NULL,
  115.    STRGADGET,
  116.    NULL,NULL,NULL,0,
  117.    &itxStrInfo,ITXGAD_ID,NULL
  118. };
  119.  
  120. struct StringInfo tx4StrInfo =         /* Text line 4 string gadget.       */
  121. {
  122.    &tx4Buf,NULL,0,26,0,
  123.    0,0,0,0,0,NULL,0,NULL
  124. };
  125.  
  126. struct Gadget tx4Gad =
  127. {
  128.    &itxGad,20,56,208,8,
  129.    GADGHCOMP,
  130.    RELVERIFY|STRINGCENTER,
  131.    STRGADGET,
  132.    NULL,NULL,NULL,0,
  133.    &tx4StrInfo,TX4GAD_ID,NULL
  134. };
  135.  
  136. struct StringInfo tx3StrInfo =         /* Text line 3 string gadget.       */
  137. {
  138.    &tx3Buf,NULL,0,26,0,
  139.    0,0,0,0,0,NULL,0,NULL
  140. };
  141.  
  142. struct Gadget tx3Gad =
  143. {
  144.    &tx4Gad,20,48,208,8,
  145.    GADGHCOMP,
  146.    RELVERIFY|STRINGCENTER,
  147.    STRGADGET,
  148.    NULL,NULL,NULL,0,
  149.    &tx3StrInfo,TX3GAD_ID,NULL
  150. };
  151.  
  152. struct StringInfo tx2StrInfo =         /* Text line 2 string gadget.       */
  153. {
  154.    &tx2Buf,NULL,0,26,0,
  155.    0,0,0,0,0,NULL,0,NULL
  156. };
  157.  
  158. struct Gadget tx2Gad =
  159. {
  160.    &tx3Gad,20,40,208,8,
  161.    GADGHCOMP,
  162.    RELVERIFY|STRINGCENTER,
  163.    STRGADGET,
  164.    NULL,NULL,NULL,0,
  165.    &tx2StrInfo,TX2GAD_ID,NULL
  166. };
  167.  
  168. struct StringInfo tx1StrInfo =         /* Text line 1 string gadget.       */
  169. {
  170.    &tx1Buf,NULL,0,26,0,
  171.    0,0,0,0,0,NULL,0,NULL
  172. };
  173.  
  174. struct Gadget tx1Gad =
  175. {
  176.    &tx2Gad,20,32,208,8,
  177.    GADGHCOMP,
  178.    RELVERIFY|STRINGCENTER,
  179.    STRGADGET,
  180.    NULL,NULL,NULL,0,
  181.    &tx1StrInfo,TX1GAD_ID,NULL
  182. };
  183.  
  184. struct StringInfo volStrInfo =         /* Volume string gadget.            */
  185. {
  186.    &volBuf,NULL,0,23,0,
  187.    0,0,0,0,0,NULL,0,NULL
  188. };
  189.  
  190. short xyPairs1[] = {0,0,193,0,193,12,0,12,0,0};
  191. short xyPairs2[] = {193,0,217,0,217,6,193,6,193,12,217,12,217,6};
  192. short xyPairs3[] = {0,12,0,56,217,56,217,68,0,68,0,56,217,56,217,12};
  193.  
  194. struct Border nx2Bdr =
  195. {
  196.    -8,-3,1,0,JAM1,
  197.    8,&xyPairs3,NULL
  198. };
  199.  
  200. struct Border nx1Bdr =
  201. {
  202.    -8,-3,1,0,JAM1,
  203.    7,&xyPairs2,&nx2Bdr
  204. };
  205.  
  206. struct Border labBdr =
  207. {
  208.    -8,-3,1,0,JAM1,
  209.    5,&xyPairs1,&nx1Bdr
  210. };
  211.  
  212. struct Gadget volGad =
  213. {
  214.    &tx1Gad,20,16,184,8,
  215.    GADGHCOMP,
  216.    RELVERIFY,
  217.    STRGADGET,
  218.    &labBdr,NULL,NULL,0,
  219.    &volStrInfo,VOLGAD_ID,NULL
  220. };
  221.  
  222. /*---- Window stuff -------------------------------------------------------*/
  223.  
  224. struct NewWindow nw =
  225. {
  226.    165,55,308,86,2,1,
  227.    GADGETUP|CLOSEWINDOW,
  228.    WINDOWDRAG|WINDOWDEPTH|WINDOWCLOSE|ACTIVATE,
  229.    &volGad,NULL,
  230.    "DLabel v2.0",
  231.    NULL,NULL,0,0,0,0,WBENCHSCREEN
  232. };
  233.  
  234. struct Window *w = NULL;
  235.  
  236. /*---- Dummy startup functions --------------------------------------------*/
  237.  
  238. void _wb_parse() {}
  239. void _cli_parse() {}
  240.  
  241. /*---- Driver -------------------------------------------------------------*/
  242.  
  243. main()
  244. {
  245.    int finished = 0;
  246.    struct IntuiMessage *msg;
  247.  
  248.    if (!(openLibs(libs,&IntuitionBase))) wrapup(1);
  249.    if (!(w = OpenWindow(&nw))) wrapup(2);
  250.    while (!finished)
  251.    {
  252.        Wait(1L << w->UserPort->mp_SigBit);
  253.        msg = GetMsg(w->UserPort);
  254.        switch (msg->Class)
  255.        {
  256.        case GADGETUP:
  257.            doGadget(msg->IAddress);
  258.            break;
  259.        case CLOSEWINDOW:
  260.            finished = -1;
  261.            break;
  262.        default:
  263.            finished = -1;
  264.        }
  265.        ReplyMsg(msg);
  266.    }
  267.    wrapup(0);
  268. }
  269.  
  270. doGadget(gad)
  271. struct Gadget *gad;
  272. {
  273.    switch (gad->GadgetID)
  274.    {
  275.    case VOLGAD_ID:
  276.    case TX1GAD_ID:
  277.    case TX2GAD_ID:
  278.    case TX3GAD_ID:
  279.    case TX4GAD_ID:
  280.        ActivateGadget(gad->NextGadget,w,NULL);
  281.        break;
  282.    case CLRGAD_ID:
  283.        *volStrInfo.Buffer = 0; volStrInfo.BufferPos = 0;
  284.        *tx1StrInfo.Buffer = 0; tx1StrInfo.BufferPos = 0;
  285.        *tx2StrInfo.Buffer = 0; tx2StrInfo.BufferPos = 0;
  286.        *tx3StrInfo.Buffer = 0; tx3StrInfo.BufferPos = 0;
  287.        *tx4StrInfo.Buffer = 0; tx4StrInfo.BufferPos = 0;
  288.        *itxStrInfo.Buffer = 0; itxStrInfo.BufferPos = 0;
  289.        RefreshGList(&volGad,w,NULL,6L);
  290.        ActivateGadget(&volGad,w,NULL);
  291.        break;
  292.    case PRTGAD_ID:
  293.        printLabel();
  294.        break;
  295.    default:
  296.        printf("Bad gadget id!\n");
  297.    }
  298. }
  299.  
  300. printLabel()
  301. {
  302.    int i1,i2;
  303.    FILE *fp;
  304.  
  305.    if (!(fp = fopen("par:","w")))
  306.    {
  307.        perror("DLabel");
  308.    }
  309.    else
  310.    {
  311.        fprintf(fp,"%cU1",0x1b);
  312.        fprintf(fp,"%c%24s%c%c%c%c\n",0xc9,&vlin1,0xc2,0xc4,0xc4,0xb7);
  313.        fprintf(fp,"%c %-22s %c%c%c%c\n",0xba,&volBuf,0xc7,0xc4,0xc4,0xb5);
  314.        fprintf(fp,"%c%24s%c%c%c%c\n",0xc7,&vlin1,0xca,0xc4,0xc4,0xb5);
  315.        fprintf(fp,"%c%28c\n",0xba,0xba);
  316.        i2 = (27 - strlen(&tx1Buf)) / 2;
  317.        i1 = 27 - i2;
  318.        fprintf(fp,"%c%*s %*c\n",0xba,i1,&tx1Buf,i2,0xba);
  319.        i2 = (27 - strlen(&tx2Buf)) / 2;
  320.        i1 = 27 - i2;
  321.        fprintf(fp,"%c%*s %*c\n",0xba,i1,&tx2Buf,i2,0xba);
  322.        i2 = (27 - strlen(&tx3Buf)) / 2;
  323.        i1 = 27 - i2;
  324.        fprintf(fp,"%c%*s %*c\n",0xba,i1,&tx3Buf,i2,0xba);
  325.        i2 = (27 - strlen(&tx4Buf)) / 2;
  326.        i1 = 27 - i2;
  327.        fprintf(fp,"%c%*s %*c\n",0xba,i1,&tx4Buf,i2,0xba);
  328.        fprintf(fp,"%c%28c\n",0xba,0xba);
  329.        fprintf(fp,"%c%27s%c\n",0xc7,&vlin2,0xb5);
  330.        fprintf(fp,"%c %-25s %c\n",0xba,&itxBuf,0xba);
  331.        fprintf(fp,"%c%27s%c\n",0xc0,&vlin2,0xbe);
  332.        fclose(fp);
  333.    }
  334. }
  335.  
  336. wrapup(stat)
  337. int stat;
  338. {
  339.    if (w) CloseWindow(w);
  340.    closeLibs(&IntuitionBase);
  341.    exit(stat);
  342. }
  343.